'''
Created on 18/05/2012

@author: rcasal
'''



if 0:
    None
    import gluon
    global db; db = gluon.sql.DAL()
    global dbDatosComunes; dbDatosComunes = gluon.sql.DAL()
    from RepositoriesExceptions import InconsistenceDBException


class ProvinciasRepository():
    
    @staticmethod
    def findById(id):#@ReservedAssignment
        return dbDatosComunes(dbDatosComunes.ProvinciasView.id == id).select().last()
    
class LocalidadesRepository():
    
    @staticmethod
    def findLocalidadesByProvincia(idProvincia):
        return dbDatosComunes((dbDatosComunes.ProvinciasView.id == idProvincia)&(dbDatosComunes.Departamentos.Provincia == dbDatosComunes.ProvinciasView.Pref)&(dbDatosComunes.Localidades.IDDepartamento == dbDatosComunes.Departamentos.id)).select(dbDatosComunes.Localidades.Nombre, dbDatosComunes.Localidades.id, orderby = dbDatosComunes.Localidades.Nombre)
     
    @staticmethod
    def findById(id):#@ReservedAssignment
        return dbDatosComunes(dbDatosComunes.Localidades.id == id).select().last()

    
class BarriosRepository():
    
    @staticmethod
    def findAll():
        return dbDatosComunes(dbDatosComunes.Barrios.id > 0).select(orderby = dbDatosComunes.Barrios.Nombre)
    
    @staticmethod
    def findById(id):#@ReservedAssignment
        return dbDatosComunes(dbDatosComunes.Barrios.id == id).select().last()
    
class DepartamentosRepository():
    
    @staticmethod
    def findAll():
        return dbDatosComunes(dbDatosComunes.Departamentos.id > 0).select(orderby = dbDatosComunes.Departamentos.Nombre)
    
    @staticmethod
    def findById(id):#@ReservedAssignment
        return dbDatosComunes(dbDatosComunes.Departamentos.id == id).select().last()
    
    @staticmethod
    def findByProvincia(idProv):#@ReservedAssignment
        return dbDatosComunes(dbDatosComunes.Departamentos.Provincia == idProv).select()

    